﻿using Abp.Application.Services.Dto;
using Mt.Site.Application.Dto;
using Mt.Site.Application.Dto.Add;
using Mt.Site.Application.Messages_.BackEnd.Dto;
using Mt.Site.Core.Messages_;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Mt.Site.Application.Messages_.BackEnd
{
    public interface IMessagesAppService : IBackEndAppService
    {
        /// <summary>
        /// 获取分页列表
        /// </summary>
        /// <param name="input">分页类</param>
        /// <returns>分页信息</returns>
        Task<PagedResultDto<MessagesDto>> GetPagedMessagesData(PageMessageInput input);

        Task<List<MessageSelectItem>> GetMessageSelectMenuData(MessageSelectInput input);


        Task<List<MessageSelectItem>> GetMessageSelectTitleData(MessageSelectInput input);

        /// <summary>
        /// 更新信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task UpdateMessagesAsync(UpdateMessageInput input);


        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task DeleteMessagesAsync(DeleteMessagesInput input);


        /// <summary>
        /// 改变状态
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task UpdateMessagesState(MessagesStateInput input);

        /// <summary>
        /// 下载Excel
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<FileDto> DataExport(MesssageExportList input);

        /// <summary>
        /// 根据id获取信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<MessagesDto> GetMessagesByIdAsync(MenuAndIdInput<Guid> input);
    }
}
